Preemption Abstraction A Lightweight Approach to Modelling Concurrency
نویسندگان
چکیده
This paper presents the preemption abstraction, an abstraction technique for lightweight verification of one sequential component of a concurrent system. Thereby, different components of the system are permitted to interfere with each other. The preemption abstraction yields a sequential abstract system that can easily be described in the higherorder logic of a theorem prover. One can therefore avoid the cumbersome and costly reasoning about all possible interleavings of state changes of each system component. The preemption abstraction is best suited for components that use preemption points, that is, where the concurrently running environment can only interfere at a limited number of points. The preemption abstraction has been used to model the IPC subsystem of the Fiasco microkernel. We proved two practically relevant properties of the model. On the attempt to prove a third property, namely that the assertions in the code are always valid, we discovered a bug that could potentially crash the whole system.
منابع مشابه
Algebraic Principles for Rely-Guarantee Style Concurrency Verification Tools
We provide simple equational principles for deriving relyguarantee-style inference rules and refinement laws based on idempotent semirings. We link the algebraic layer with concrete models of programs based on languages and execution traces. We have implemented the approach in Isabelle/HOL as a lightweight concurrency verification tool that supports reasoning about the control and data flow of ...
متن کاملScala actors : Unifying thread - based and event - based programming Philipp
There is an impedance mismatch between message-passing concurrency and virtual machines, such as the JVM. VMs usually map their threads to heavyweight OS processes. Without a lightweight process abstraction, users are often forced to write parts of concurrent applications in an event-driven style which obscures control flow, and increases the burden on the programmer. In this paper we show how ...
متن کاملModelling Remote Concurrency with Ada. Case Study of Symmetric Non-deterministic Rendez-vous. Modelling Remote Concurrency with Ada. Case Study of Symmetric Non-deterministic Rendez-vous
When developing concurrent software, a proper engineering practice is to choose a good level of abstraction for expressing concurrency control. Ideally, this level should provide platform-independent abstractions but, as the platform concurrency behaviour cannot be ignored, this abstraction level must also be able to cope with it and exhibit the influence of different possible behaviours. We st...
متن کاملRepresentation and Analysis of Reactive Behaviors: A Synchronous Approach
Reactive systems involve communication, concurrency and preemption. Few models support these three concepts, even less can correctly deal with their coexistence. The synchronous paradigm allows a rigourous approach to this problem, crucial to reactive systems. This paper analyzes the underlying hypotheses of the synchronous approach. Reactive behaviors are characterized. A new visual model (SYN...
متن کاملModeling and Validation of Tasks with Algebraic Structured Nets
Ada ooers several mechanisms for expressing concurrency, like tasks and protected types. The use of concurrency can introduce sig-niicant problems which are inherent in the program's interactions or can require some particular properties. Amongst these problems or necessary properties, we can mention deadlocks, fairness and particular temporal characteristics. The modelling of concurrency behav...
متن کامل